<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Object.assign()以及扩展运算符</title>
    <script>
        // 默认选项
        let defaultOptions = {
            headers: {
                'Accept': '*/*',
                'Content-Type': 'application/json',
                'Cache-Control': 'no-cache'
            },
            method: 'GET'
        };

        // 用户选项
        let myOptions = {
            headers: {
                'token': 'EyxBFRXbtZIVByGpmsmmcMXaXKlwiVdh'
            },
            params: {
                'id': 13,
                'status': 2
            },
            method: 'POST'
        };

        // 使用 Object.assign() 进行合并
        let mergedOptions = Object.assign({}, defaultOptions, myOptions);
        // 单独处理 headers 的合并，确保不丢失默认 headers 的属性
        mergedOptions.headers = Object.assign({}, defaultOptions.headers, myOptions.headers);

        console.log(mergedOptions);

    //     //扩展运算符
    //     // 默认选项
    //     let defaultOptions = {
    //         headers: {
    //             'Accept': '*/*',
    //             'Content-Type': 'application/json',
    //             'Cache-Control': 'no-cache'
    //         },
    //         method: 'GET'
    //     };

    //     // 用户选项
    //     let myOptions = {
    //         headers: {
    //             'token': 'EyxBFRXbtZIVByGpmsmmcMXaXKlwiVdh'
    //         },
    //         params: {
    //             'id': 13,
    //             'status': 2
    //         },
    //         method: 'POST'
    //     };

    //     // 使用扩展运算符进行合并
    //     let mergedOptions = {
    //         ...defaultOptions,
    //         ...myOptions,
    //         headers: {
    //             ...defaultOptions.headers,
    //             ...myOptions.headers
    //         }
    //     };

    //     console.log(mergedOptions);
   </script>
    </body>

</html>